Chaum-Pedersen ZKP Protocol

The Chaum-Pedersen Zero-Knowledge Proof (ZKP) Protocol is a cryptographic method for proving the equality of discrete logarithms without revealing the secret exponent. It ensures that for given group elements $(g, h, A, B)$, there exists a secret $x$ such that $A = g^x$ and $B = h^x$.

Core Protocol Workflow​​

Setup

Commitment (Prover):

Challenge (Verifier):

Response (Prover):

Verification:

Proof

$$ \begin{align*} g^{s} &= g^{w + c * x \mod q} = g^w g^{cx} \mod q \newline t_1 * A^c &= g^w * (g^x)^c = g^w g^{cx} \mod q \newline & \implies g^s = t_1 * A^c \end{align*} $$

Similarly, can prove that $h^s = t_2 * B^c$